package com.baizhi.factory;

import org.springframework.beans.factory.FactoryBean;

import java.util.Date;

/**
 * 通过Spring工厂创建对象
 */
public class DateSpringFactory implements FactoryBean<Date> {
    /**
     * Spring工厂创建对象的方法
     * @return
     * @throws Exception
     */
    @Override
    public Date getObject() throws Exception {
        return new Date();
    }

    /**
     * 获取当前工厂生产的对象的类型的方法
     * @return
     */
    @Override
    public Class<?> getObjectType() {
        return Date.class;
    }

    /**
     * 判断当前工厂生产的对象是否需要采用单例模式
     * 如果返回true,则在Spring中该对象只能创建一次，创建好之后保存在map中，后续重复使用
     * 如果返回false，则每次获取该bean的时候，都重新创建对象
     * @return
     */
    @Override
    public boolean isSingleton() {
        return true;
    }
}
